草庐IT

java string.contains 在 switch 语句中

全部标签

java - Java如何处理IF语句及效率

我只是好奇Java在处理if语句时实际上是如何工作的。(注意:当我在下面说“组件”时,我指的是语句检查的各个部分,例如a、b、c)哪个计算效率更高?if(a&&b&&c){dostuff}或if(a){if(b){if(c){dostuff}}}我之所以问,是因为Java在第一个版本中所做的很重要。它是检查语句中的每一件事还是检查a,如果它是false则取消检查语句的其余部分?如果是这种情况,那么将最有可能失败的组件作为语句中的第一个组件是有意义的。如果每次都检查整个语句,那么将组件拆分为一堆不同的语句更有意义,如第二个示例所示。 最佳答案

java - 替代java中的if语句

我很想看到常规if语句的任何替代方案,例如if(x)doa;if(y)dob;if(z)doc;因此,如您所见,所有if语句都是独立的,没有else条件。请注意XYZ是完全独立的条件,因此不适合切换。 最佳答案 一个“真正面向对象”的答案是为“Rule”定义一个接口(interface)(使用condition()和action()方法),创建3个实现,将它们填充到一个集合中,然后一般地迭代它们作为在:Listrules=....;//your3rulesinitializedheresomehowfor(Ruler:rules){

java - 准备好的语句仅在不调试时抛出异常

我使用这段代码将一些数据插入数据库:Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");Connectioncon=DriverManager.getConnection("jdbc:odbc:war_odbc");PreparedStatementst=con.prepareStatement("INSERTINTOActors(FirstName,LastName,Age)VALUES(?,?,?)");st.setString(1,"Robert");st.setString(2,"deNiro");st.setInt(3,45);st.e

java - 导入语句是否支持 SpEL?

我想根据某些条件导入不同的资源文件。这可能吗?这些不起作用: 最佳答案 支持SpEL,但Spring很早就解析了import语句。spring在解析import语句时,属性占位符还没有被解析。例如:定义以下属性:import.fileName=${blah}blah=properties.props然后我们可以使用“import.fileName”属性作为导入的参数这解析为:并且大概资源“${blah}”不存在。也就是说,您可以使用属性来解析导入文件名。 关于java-导入语句是否支持S

java - try block 内语句的 Netbeans 声明性提示语法

我想检查并转换一个特定的语句为try-with-ressources形式。但我感觉declarativehintsformat的语法为此我避而不谈。我试过:try{$before$;someMethod($arg1,$arg2,$arg3);$after$;}catch$catches$=>try(Resourceres=acquire($arg1,$arg2,$arg3)){$before$;res.use();$after$;}catch$catches$但应用到我的代码中时,模式永远不会匹配。这是我希望匹配的一些示例代码部分:publicbooleanstep(Stringinp

java - 配置 checkstyle do while 语句样式

我正在尝试在EclipseCheckstyle插件中创建一个规则,该规则将检查do..while语句的while部分是否与结束括号位于同一行。我的目标是使以下内容有效:intcount=0;do{System.out.println(count);count++;}while(count下面必须是无效的:intcount=0;do{System.out.println(count);count++;}while(count我尝试通过创建RightCurlyBraceplacement来做到这一点do关键字的规则(在block下),指定“相同”选项。但是,对于上述两个示例,运行check

java - 从 DependencyDescriptor 访问 "containing class"

我正在开发一个支持上下文相关注入(inject)的实用程序,即注入(inject)的内容现在也可以取决于注入(inject)的位置。记录器注入(inject)是这种技术的常见应用。到目前为止,我已经成功地为HK2和Guice实现了这个,并且对Dagger有一些限制。为了在Spring中解决这个问题,我使用了一个注册了AutowireCandidateResolver的BeanFactoryPostProcessor。但是,为了实现预期的语义,我需要知道实际目标对象的类型,这可能与声明注入(inject)点的类型不同。例如:classBaseClass{@InjectLoggerlogg

java - 设计模式 : avoid switch to decide which service call

对于一个项目,我们有一个Controller/Service/DAO架构。我们实现了对不同提供商API的调用,因此我们在每个Controller类中都得到了一些样板代码,如下所示:enum{PARTNER_A,PARTNER_B,PARTNER_C}publicclassMyController{@ResourcePartnerASearchServicepartnerASearchService;@ResourcePartnerBSearchServicepartnerBSearchService;@ResourcePartnerCSearchServicepartnerCSearc

Java 8 : Merging two Lists containing objects by key

我有两个列表:Listservers1=newArrayList();Servers1=newServer("MyServer");s1.setAttribute1("Attribute1");servers1.add(s1);Listservers2=newArrayList();Servers2=newServer("MyServer");s2.setAttribute2("Attribute2");servers2.add(s2);servers1包含具有name和attribute1(但没有attribute2)的服务器。servers2包含具有name和attribute2(

java - 消费本地EJB,同一个Container,不同耳

我正在尝试在同一个Glassfish中使用本地EJB,但耳朵不同。但是Glassfish找不到本地EJB或者不能消费我读了这个:根据JavaEE教程,@Localbean的客户端“必须在与其访问的企业bean相同的JVM中运行。”第一耳,我在jar中有本地接口(interface)@LocalpublicinterfaceMyLocalBean{intgetNumber(intnum3);}在另一个jar里,我有实现@Stateless@LocalBeanpublicclassMyLocalBeanImplimplementsMyLocalBean,Serializable{publi